// 使用 import 导入库
import { WebSocketServer } from 'ws';
import http from 'http';
// 存储连接的用户
const clients = []
// 创建一个 HTTP 服务器
const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('WebSocket Server is running.\n');
});

// 创建一个 WebSocket 服务器
const wss = new WebSocketServer({ server });
// 监听连接事件
wss.on('connection', (ws) => {
    console.log('客户端已连接');
    // 监听客户端发送的消息
    ws.on('message', (message) => {
        console.log(`收到消息: ${message}`);
        // 将新的客户端添加到客户端列表中
        clients.push(ws);

        //广播给所有客户
        clients.forEach((client) => {
            if (client.readyState === WebSocket.OPEN) {
                client.send(message);
            }
        });
    });
    // 连接关闭时的回调
    ws.on('close', () => {
        // 从客户端列表中移除
        const index = clients.indexOf(ws);
        if (index !== -1) {
            clients.splice(index, 1);
        }
        console.log('客户端已断开连接');
    });
    // 连接错误时的回调
    ws.on('error', (err) => {
        console.log(`客户端连接错误: ${err.message}`);
    })
});
// 启动服务器并监听端口
const PORT = 8080;
server.listen(PORT, () => {
    console.log(`HTTP 和 WebSocket 服务器正在运行，端口: ${PORT}`);
});
